import PageCard from '@/components/PageCard.vue'
import FormView from '@/components/form/FormView.vue'
import TableColumn from '@/components/table/TableColumn.vue'
import FormBlock from '@/components/form/FormBlock.vue'
import TableView from '@/components/form/TableView.vue'
import ToolbarButton from '@/components/toolbar/ToolbarButton.vue'
import XInputTag from '@/components/XInputTag.vue'
import PageableTable from '@/components/table/PageableTable.vue'
import EditableTree from '@/components/EditableTree.vue'
import UserPicker from '@/components/organize/user/UserPicker.vue'
import DepartmentPicker from '@/components/organize/department/DepartmentPicker.vue'
import DataTablePicker from '@/components/DataTablePicker.vue'
import DataLoading from '@/components/DataLoading.vue'
import Toolbar from '@/components/toolbar/Toolbar.vue'
import SubTable from '@/components/table/SubTable.vue'
import SubTablePlus from '@/components/table/SubTablePlus.vue'

import FormHolder from '@/components/form/FormHolder.vue'
import FormItemGroup from '@/components/form/FormItemGroup.vue'
import FormItem from '@/components/form/FormItem.vue'
import FormInput from '@/components/form/FormInput.vue'
import FormTextarea from '@/components/form/FormTextarea.vue'
import FormInputTime from '@/components/form/FormInputTime.vue'
import FormInputEmail from '@/components/form/FormInputEmail.vue'
import FormInputIdCard from '@/components/form/FormInputIdCard.vue'
import FormInputPhoneNumber from '@/components/form/FormInputPhoneNumber.vue'
import FormSwitch from '@/components/form/FormSwitch.vue'
import FormTreeSelect from '@/components/form/FormTreeSelect.vue'

import FormCheckboxGroup from '@/components/form/FormCheckboxGroup.vue'
import FormInputNumber from '@/components/form/FormInputNumber.vue'
import FormDatePicker from '@/components/form/FormDatePicker.vue'
import FormRadioGroup from '@/components/form/FormRadioGroup.vue'
import FormSelect from '@/components/form/FormSelect.vue'
import FormAttachment from '@/components/form/FormAttachment.vue'
import FormInputTag from '@/components/form/FormInputTag.vue'
import InputUser from '@/components/organize/user/InputUser.vue'
import FormInputUser from '@/components/form/FormInputUser.vue'
import FormInputDepartment from '@/components/form/FormInputDepartment.vue'
import FormTable from '@/components/form/FormTable.vue'
import FormTablePlus from '@/components/form/FormTablePlus.vue'
import InputDepartment from '@/components/organize/department/InputDepartment.vue'
import FormCascader from '@/components/form/FormCascader.vue'
import BasicContainer from '@/components/BasicContainer.vue'

export const components = {
  install(Vue) {
    Vue.component(PageCard.name, PageCard)
    Vue.component(FormView.name, FormView)
    Vue.component(TableColumn.name, TableColumn)
    Vue.component(TableView.name, TableView)
    Vue.component(ToolbarButton.name, ToolbarButton)
    Vue.component(XInputTag.name, XInputTag)
    Vue.component(FormBlock.name, FormBlock)
    Vue.component(UserPicker.name, UserPicker)
    Vue.component(DepartmentPicker.name, DepartmentPicker)
    Vue.component(PageableTable.name, PageableTable)
    Vue.component(EditableTree.name, EditableTree)
    Vue.component(DataTablePicker.name, DataTablePicker)
    Vue.component(DataLoading.name, DataLoading)
    Vue.component(Toolbar.name, Toolbar)
    Vue.component(InputUser.name, InputUser)
    Vue.component(InputDepartment.name, InputDepartment)
    Vue.component(SubTable.name, SubTable)
    Vue.component(SubTablePlus.name, SubTablePlus)

    Vue.component(FormHolder.name, FormHolder)
    Vue.component(FormItemGroup.name, FormItemGroup)
    Vue.component(FormItem.name, FormItem)
    Vue.component(FormInput.name, FormInput)
    Vue.component(FormCheckboxGroup.name, FormCheckboxGroup)
    Vue.component(FormTextarea.name, FormTextarea)
    Vue.component(FormDatePicker.name, FormDatePicker)
    Vue.component(FormRadioGroup.name, FormRadioGroup)
    Vue.component(FormSelect.name, FormSelect)
    Vue.component(FormInputNumber.name, FormInputNumber)
    Vue.component(FormAttachment.name, FormAttachment)
    Vue.component(FormInputTag.name, FormInputTag)
    Vue.component(FormInputUser.name, FormInputUser)
    Vue.component(FormInputDepartment.name, FormInputDepartment)
    Vue.component(FormInputTime.name, FormInputTime)
    Vue.component(FormInputEmail.name, FormInputEmail)
    Vue.component(FormInputIdCard.name, FormInputIdCard)
    Vue.component(FormInputPhoneNumber.name, FormInputPhoneNumber)
    Vue.component(FormTable.name, FormTable)
    Vue.component(FormTablePlus.name, FormTablePlus)
    Vue.component(FormCascader.name, FormCascader)
    Vue.component(FormSwitch.name, FormSwitch)
    Vue.component(FormTreeSelect.name, FormTreeSelect)
    Vue.component(BasicContainer.name, BasicContainer)
  }
}
